Présenté par : Mohammad MOEZZIBADI
Novembre 2021
Une source d’informations très variées
Les effets de l’évolution des salaires sur le chiffre d’affaires des entreprises
Glassdoor est une source d’informations plus fiable que les documents officiels des entreprises (Tom Lakin-2015)
Scraping ciblé des pages : I) configuration de la recherche II) changement des pages avec selenium III) un exemple de témoignages d’un employé
df = df.drop(['level_0', 'level_1'], axis=1)
df = df[0].apply(pd.Series)
...
df['Date'] = [','.join(map(str, l)) for l in df[2]]
df['Date'] = df['Date'].str.split('-', n = 1, expand = True)[0
to_replace = [' ','sept.','août', 'juil.', 'mai', "avr.", ..."]
replace_with = ['','sep','aug','jul', 'may' ,"apr", ...]
df['Date'] = df['Date'].replace(to_replace, replace_with, regex=True)
df = df.dropna(axis=0, how="any", thresh=None, subset=None, inplace=False)
df['Date'] = pd.to_datetime(df['Date'],format='%d%b%Y')Nuage des mots des avis avant 2016 : positives (vert) et négatives (rouge)
Nuage des mots des avis après 2016 : positives (vert) et négatives (rouge)
\({\displaystyle \ln {p(P\mid D) \over p(\neg P\mid D)}=\ln {p(P) \over p(\neg P)}+\sum _{i}\ln {p(w_{i}\mid P) \over p(w_{i}\mid \neg P)}}\)
\({\displaystyle p(P\mid D)>p(\neg P\mid D)}\) => \({\displaystyle \ln {p(P\mid D) \over p(\neg P\mid D)}>0}\)\({\displaystyle \ln {p(P\mid D) \over p(\neg P\mid D)}=\ln {p(P) \over p(\neg P)}+\sum _{i}\ln {p(w_{i}\mid P) \over p(w_{i}\mid \neg P)}}\)
\({\displaystyle p(P\mid D)>p(\neg P\mid D)}\) => \({\displaystyle \ln {p(P\mid D) \over p(\neg P\mid D)}>0}\)\({\displaystyle \ln {p(P\mid D) \over p(\neg P\mid D)}=\ln {p(P) \over p(\neg P)}+\sum _{i}\ln {p(w_{i}\mid P) \over p(w_{i}\mid \neg P)}}\)
\({\displaystyle p(P\mid D)>p(\neg P\mid D)}\) => \({\displaystyle \ln {p(P\mid D) \over p(\neg P\mid D)}>0}\)\(\color{red}{\displaystyle \ln {p(P\mid D) \over p(\neg P\mid D)}=\ln {p(P) \over p(\neg P)}+\sum _{i}\ln {p(w_{i}\mid P) \over p(w_{i}\mid \neg P)}}\)
\({\displaystyle p(P\mid D)>p(\neg P\mid D)}\) => \({\displaystyle \ln {p(P\mid D) \over p(\neg P\mid D)}>0}\)\({\displaystyle \ln {p(P\mid D) \over p(\neg P\mid D)}=\ln {p(P) \over p(\neg P)}+\sum _{i}\ln {p(w_{i}\mid P) \over p(w_{i}\mid \neg P)}}\)
\(\color{red}{\displaystyle p(P\mid D)>p(\neg P\mid D)}\) \(\color{red}{=>}\) \(\color{red}{\displaystyle \ln {p(P\mid D) \over p(\neg P\mid D)}>0}\)\[ P(W,Z,\theta ,\varphi; \color{red}\alpha,\color{red}\beta) = \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\ \Pi_{j=1}^{M}P(\theta_j;\color{red}\alpha)\ \Pi_{j=1}^{K}P(\varphi_i;\color{red}{\beta}) \ \Pi_{t=1}^{N}P(Z_{j,t}|\theta_j)P(W_{j,t}|\varphi_{Z_{j,t}})\]
\(0< \alpha << 1\):
\((\color{red}{1.0} , 0.0, 0.0)\) ou
\((0.0, \color{red}{1.0}, 0.0)\) ou
\((0.0, 0.0, \color{red}{1.0})\)
\(\alpha ≈ 1\):
Distribution uniforme
\(\alpha > 1\) :
Une mixité égale des sujets:
\((0.4, 0.3, 0.3)\)
Steps!
1 : Chargement des données
2 : Nettoyage des données
3 : Modélisation d’expressions : bi-grammes et tri-grammes
4 : Transformation de données : Corpus et Dictionnaire
5 : Modèle de base
6 : Optimisation des hyperparamètres
7 : Modèle final
8 : Visualisation des résultats
Efficacité de Selénium : Glassdoor a une API disponible, mais pas pour le contenu qu’on recherche
On a construit un modèle LDA à l’aide de Gensim et optimisé les hyperparamètres LDA.
Comparaison de l’utilité des deux méthodes NLP : LDA (non-supervisé) et Naive Bayes (supervisé)
Inéfficacité de LDA pour les textes courts (tweets ou des commentaires) - un meilleur choix : Biterm Topic Model